/**
 * WanlShop状态管理器 - 用户管理
 * @ version 1.0.0
 **/
export default {
	namespaced: true,
	state: {
		id: 0, //用户ID
		isLogin: false, // 登录状态
		username: '', // 用户名
		nickname: '', // 昵称
		mobile: '', // 手机号
		avatar: '', // 默认头像
		level: 0, // 等级
		gender: 0, // 性别
		birthday: '', // 生日
		bio: '', // 签名
		money: '0.00', // 余额
		score: 0, // 积分
		successions: '', // 连续登录天数
		maxsuccessions: '', // 最大连续登录天数
		prevtime: '', // 上次登录时间
		logintime: '', // 登录时间
		loginip: '', // 加入IP
		jointim: '', // 加入时间
		token: '', // 令牌
		pushs: true, // 推送
		shock: true, // 震动
		voice: true ,// 提示音
		identity:{
			identity1:0,
			identity2:0,
			identity3:0,
			identity4:0,
			identity5:0
		},
		real_verified:'',
		tencentIM:{  //腾讯IM配置
			appid:'',  //腾讯后台配置的应用ID
			usersig:''//根据用户id生成的签名，用于登录腾讯IM生成账号，以便于聊天
		}
	},
	mutations: {
		setUserInfo(state, payload) {
			// for (let i in payload) {
			// 	for (let j in state) {
			// 		if (i === j) {
			// 			state[j] = payload[i];
			// 		}
			// 	}
			// }
			// uni.setStorageSync("wanlshop:user", state);
			let lifeData = uni.getStorageSync("lifeData");
			if(payload.avatar == '' && lifeData) {
				payload.avatar = lifeData.vuex_user.avatar
			}
			state = Object.assign(state,payload);
			uni.setStorageSync("wanlshop:user", Object.assign(state,payload));
		}
	},
	actions: {
		async login({state, commit, dispatch, rootState}, data) {
			commit('setUserInfo', data.userinfo);
			state.isLogin = true; // 登录状态强制 开启
			// 根据notice.vue 而知，fastadmin没有此三项默认字段，手动添加，想同步修改该这两处即可
			state.pushs = true; // 推送
			state.voice = true; // 提示音
			state.shock = true; // 震动
			uni.setStorageSync("wanlshop:user", state);
			// 统计信息
			// dispatch('statistics', data.statistics)
		},
		setToken({state, commit, dispatch, rootState}, payload) {
			uni.setStorageSync("token", payload);
		},
		async statistics({state, dispatch, rootState}, payload){
			let states = rootState.statistics;
			for (let i in payload) {
				for (let j in states) {
					if (i === j) {
						states[j] = payload[i];
					}
				}
			}
			uni.setStorageSync("wanlshop:statis", states);
		}
	}
};